package code

import "fmt"

func ProcessFor1() {
	// 第一种
	sum := 0
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println(sum)
}

func ProcessFor2() {
	// 第2种
	sum := 0
	i := 0
	for i < 10 {
		sum += i
		i++
	}
	fmt.Println(sum)
}

func ProcessFor3() {
	// 第3种
	var arr []int = []int{11, 12, 13, 14}
	for index, value := range arr {
		fmt.Println(index, value)
	}
}

func ProcessFor4() {
	// 第4种 string
	// string 底层是byte切片
	//字符串大小是16字节, 由int和指针组成
	var arr string = "abcdefg"
	for index, value := range arr {
		fmt.Printf("index:%d, value:%c\n", index, value)
	}
}

func ProcessFor5() {
	// 第5种 map
	mmap := map[int]string{
		1: "a",
		2: "b",
		3: "cc",
		4: "dd",
	}
	for key, value := range mmap {
		fmt.Printf("key:%d, value:%s\n", key, value)
	}
}

func ProcessFor6() {
	// 第5种 channel
	chnl := make(chan int)
	go func() {
		chnl <- 100
		chnl <- 1000
		chnl <- 10000
		chnl <- 100000
		close(chnl)
	}()
	for value := range chnl {
		fmt.Printf("value:%d\n", value)
	}
}
